﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;

#endregion

namespace Sebastof.Services.Interfaces {
	/// <summary>
	/// Is responsible for
	/// - replacing a standard collection that is referenced by an object 
	///   by an observable collection that contains the same objects, in the same order as the original collection does
	/// </summary>
	public interface IObservableCollectionCreatorService {
		#region Public Methods

		/// <summary>
		/// Converts the given collection to an observable collection
		/// </summary>
		/// <param name="collection">collection to be converted</param>
		/// <param name="parentObject">the parent object that owns the collection, can be null</param>
		/// <param name="parentObjectKey">the used key to retriev the collection from the parent object</param>
		/// <returns></returns>
		Object ConvertToObservableCollection(object collection, object parentObject, string parentObjectKey);

		#endregion
	}
}